package com.smart.manager.product.entities.models;

import com.smart.common.entities.core.BaseLongModel;
import com.smart.manager.product.entities.enums.CameraPlace;
import com.smart.manager.product.entities.enums.CameraStatus;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.persistence.Entity;
import javax.persistence.Table;
import java.time.LocalDateTime;

/**
 * 摄像头
 * @author leo
 * @date 2023/09/11
 */
@EqualsAndHashCode(callSuper = true)
@Entity
@Data
@Accessors(chain = true)
@Table(name = "product_basic_camera")
public class BasicCamera extends BaseLongModel {

    /**
     *设备序列号，存在英文字母的设备序列号，字母需为大写
     */
    @ApiModelProperty("设备序列号")
    private String deviceSerial;

    @ApiModelProperty("设备名称")
    private String deviceName;

    /**
     *设备类型
     */
    @ApiModelProperty("设备类型")
    private String deviceType;

    /**
     * 在线状态：0-不在线，1-在线
     */
    @ApiModelProperty("在线状态")
    private int status;

    /**
     *具有防护能力的设备布撤防状态：0-睡眠，8-在家，16-外出 普通IPC布撤防状态：0-撤防，1-布防
     */
    @ApiModelProperty("具有防护能力的设备布撤防状态")
    private int deviceVersion;

    /**
     *添加时间
     */
    @ApiModelProperty("添加时间")
    private LocalDateTime addTime;

    /**
     *设备二级类目
     */
    @ApiModelProperty("设备二级类目")
    private String parentCategory;

    /**
     * 设备风险安全等级，0-安全，大于零，有风险，风险越高，值越大
     */
    @ApiModelProperty("设备风险安全等级")
    private int riskLevel;

    /**
     * 设备IP地址
     */
    @ApiModelProperty("设备IP地址")
    private String netAddress;

    /**
     * 直播流地址 (后加)
     */
    @ApiModelProperty("直播流地址")
    private String stream;

    /**
     * 位置属性 (后加)
     */
    @ApiModelProperty("位置属性")
    private CameraPlace place;

    /**
     * 摄像头状态 (后加)
     */
    @ApiModelProperty("摄像头状态")
    private CameraStatus cameraStatus;

}
